﻿@model NapCardOnline.Models.Payment
<div class="thumbnail">
    <div class="caption">
        <a href="#">
            <img alt="" src="../../Images/the_dien_thoai_sutzo_200K.jpg" /></a>
    </div>
    <div id="payment-body">
        <input id="paymentAmount" type="text" maxlength="11" required="required" style="width: 250px;
            margin-top: 10px" placeholder="Số điện thoại cần topup" />
        @{ Html.RenderAction("_ShowContact", "Payment"); }
        <span class="help-block" style="color: red">
            <p>
            </p>
        </span>
        <h5>@(Model.ServiceName)</h5>
        <div class="body-contain-payment">
            <p>
                Mệnh giá:</p>
            <strong>@(string.Format("{0:0,00}", Model.CostAmount))
                vnđ</strong></div>
        <div class="body-contain-payment">
            <p>
                Chiết khấu:</p>
            <strong>@(Model.PaymentCommissionPercent.ToString())
                %</strong></div>
        <div class="body-contain-payment">
            <p>
                Số tiền chiết khấu:</p>
            <strong>@(string.Format("{0:0,00}", Model.PaymentCommissionAmount))
                vnđ</strong></div>
        <div class="body-contain-payment button-payment">
            <p>
                <a href="#" id="back-showcost"><i class="icon-backward"></i>Quay về </a>
            </p>
            <strong>
                <button id="btn_payment" class="btn btn-primary" type="submit">
                    Thanh Toán</button></strong>
        </div>
    </div>
</div>
@*@Html.ActionLink("Back", "Create", "Payment", new { @id = "back-showcost" });*@
<script type="text/javascript">
    $(function () {
        $("#back-showcost").click(function (e) {
            e.preventDefault();
            var model = @Html.Raw(Json.Encode(Model));
            AjaxCallShowCost(model.ServiceNo);
        });
    });
    function AjaxCallShowCost(serviceNo) {
        $.ajax({
            url: '@Url.Action("_ShowCost", "Payment")',
            data: { serviceNo: serviceNo },
            success: function (data) {
                $("#service-cost-span5 .thumbnails").empty();
                $("#service-cost-span5 .thumbnails").append(data);
            },
            error: function () {

            }
        });
    }

    $(function() {
        $("#paymentAmount").blur(function () {
            checkPhoneInput();
        });
        $("#btn_payment").click(function(e) {
            //Check chu ky dien tu 
            //TODO: continue later

            if(checkPhoneInput()) {
                var paymentId = AjaxCreatePayment();
                if(paymentId>0) {
                    alert(paymentId);
                    var result = AjaxAddOfflinePayment(paymentId);
                    var isUpdate = AjaxUpdatePayment(paymentId,result);
                    if(isUpdate && result==0) {
                        return alert("Thanh toán thành công");
                    } else {
                        return alert("Thanh toán thất bại");
                    }
                }
                //Thong bao khong tao moi duoc payment
                return alert("Không tạo mới được payment");
            }
            return alert("Kiểm tra lại số tài khoản nhận tiền");
        });
    });

    function checkPhoneInput() {
        var phoneNumber = $("#paymentAmount").val();
        var isexist = false;
            if(checkPhoneLength(phoneNumber)) {
                var headNumber = "";
                
                if (phoneNumber.length == 10) {
                    headNumber = phoneNumber.substring(0, 3);
                }
                if (phoneNumber.length == 11) {
                    headNumber = phoneNumber.substring(0, 4);
                }
                if (headNumber.length >= 3) {
                    //goi ajax truyen headerNumber xuong de check tinh hop le
                    isexist= AjaxCheckHeaderNumber(@ViewBag.ServiceId,headNumber);
                }
            } 
         return isexist;
    }
    
    function AjaxCheckHeaderNumber(serviceId,headNumber) {
        var isexist = false;
        $.ajax({
            url: '@Url.Action("CheckHeaderNumberOfService", "Payment")',
            async: false, //Chờ ajax goi lên server xong mới chạy câu lệnh kế tiếp
            data: { serviceId: serviceId, headNumber: headNumber },
            type: 'POST',
            success: function (data) {
                if(data.success==true) {
                    phoneApprove();
                     isexist=true;
                } else {
                     phoneReject();
                     isexist=false;
                }
            },
            error: function () {
                 isexist=false;
            }
        });
        return isexist;
}
    
    function AjaxCreatePayment() {
        var phoneNumber = $("#paymentAmount").val();
        var paymentId    = 0;
        var objPayment = {
                FK_ServiceID: @ViewBag.ServiceId,
                FK_CostID: @ViewBag.CostId,
                PaymentAmount: @ViewBag.Amount,
                PaymentCommissionPercent: @ViewBag.CommissionPercent,
                PaymentCommissionAmount: @ViewBag.CommissionAmount,
                PaymentCodeAccount: phoneNumber
           };
        var jsonPayment = JSON.stringify(objPayment);
        $.ajax({
            type: 'POST',
            url: '@Url.Action("Create", "Payment")',
            async: false, //Chờ ajax goi lên server xong mới chạy câu lệnh kế tiếp
            data: jsonPayment,
            contentType: 'application/json;charset=utf-8',
            success: function (data) {
                if(data.Id>0) {
                    paymentId = data.Id;
                } else {
                    paymentId = 0;
                }
                },
                error: function () {
                    paymentId = 0;
                }
        });
        return paymentId;
    }

    function AjaxAddOfflinePayment(paymentId) {
        var result = -1;
        $.ajax({
            type: 'POST',
            url: '@Url.Action("AjaxAddOfflinePayment", "Payment")',
            async: false, //Chờ ajax goi lên server xong mới chạy câu lệnh kế tiếp
            data: {id:paymentId},
            success: function (data) {
                    result = data.result;
                },
                error: function (e) {
                    result = -1;
                }
        });
        return result;
    }

    function AjaxUpdatePayment(paymentId,result) {
        var isUpdate = false;
        $.ajax({
            type: 'POST',
            url: '@Url.Action("AjaxUpdatePayment", "Payment")',
            async: false, //Chờ ajax goi lên server xong mới chạy câu lệnh kế tiếp
            data: {paymentId:paymentId,result:result},
            success: function (data) {
                    isUpdate = data.isUpdate;
                },
                error: function () {
                    isUpdate = false;
                }
        });
        return isUpdate;
    }

</script>
